import { resolve } from 'path'
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
import react from '@vitejs/plugin-react'

/**
 * 导出 Electron Vite 的配置对象
 * 使用 `defineConfig` 函数来定义配置，以提供类型检查和智能提示
 */
export default defineConfig({
  /**
   * 主进程配置
   * 主进程是 Electron 应用的核心，负责管理应用的生命周期和创建渲染进程
   */
  main: {
    /**
     * 插件配置
     * 使用 `externalizeDepsPlugin` 插件将项目依赖外部化，避免打包到主进程中
     */
    plugins: [externalizeDepsPlugin()]
  },
  /**
   * 预加载脚本配置
   * 预加载脚本在渲染进程加载之前执行，允许在渲染进程中访问 Node.js API
   */
  preload: {
    /**
     * 插件配置
     * 使用 `externalizeDepsPlugin` 插件将项目依赖外部化，避免打包到预加载脚本中
     */
    plugins: [externalizeDepsPlugin()]
  },
  /**
   * 渲染进程配置
   * 渲染进程负责显示应用的用户界面，通常使用 HTML、CSS 和 JavaScript 构建
   */
  renderer: {
    /**
     * 解析配置
     * 配置模块解析规则，如别名、扩展名等
     */
    resolve: {
      /**
       * 别名配置
       * 定义模块导入时的别名，方便快速定位文件路径
       */
      alias: {
        /**
         * 将 `@renderer` 别名映射到 `src/renderer/src` 目录
         * 使用 `resolve` 函数确保路径的正确性
         */
        '@renderer': resolve('src/renderer/src')
      }
    },
    /**
     * 插件配置
     * 使用 `react` 插件支持 React 开发，提供 JSX 转换和热更新等功能
     */
    plugins: [react()]
  }
})
